From a203b8cc284b724d6a555e940a5633fc612372b1 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Mon, 31 Oct 2016 16:28:09 +0000 Subject: [PATCH] gsk: Use GskRenderer.create_cairo_surface() GskRenderNode should ask the renderer for a Cairo surface when creating a drawing context. --- gsk/gskrendernode.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/gsk/gskrendernode.c b/gsk/gskrendernode.c index e9d345e476..6d2cf8785d 100644 --- a/gsk/gskrendernode.c +++ b/gsk/gskrendernode.c @@ -45,6 +45,7 @@ #include "gskdebugprivate.h" #include "gskrendernodeiter.h" +#include "gskrendererprivate.h" #include @@ -1412,14 +1413,11 @@ gsk_render_node_get_draw_context (GskRenderNode *node) if (node->surface == NULL) { - int scale_factor = gsk_renderer_get_scale_factor (node->renderer); - int width = node->bounds.size.width * scale_factor; - int height = node->bounds.size.height * scale_factor; - - node->surface = cairo_image_surface_create (node->opaque ? CAIRO_FORMAT_RGB24 - : CAIRO_FORMAT_ARGB32, - width, height); - cairo_surface_set_device_scale (node->surface, scale_factor, scale_factor); + node->surface = gsk_renderer_create_cairo_surface (node->renderer, + node->opaque ? CAIRO_FORMAT_RGB24 + : CAIRO_FORMAT_ARGB32, + node->bounds.size.width, + node->bounds.size.height); } res = cairo_create (node->surface); -- 2.30.2